// CodeGear C++Builder
// Copyright (c) 1995, 2015 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'ocv.comp.IOProperties.pas' rev: 30.00 (Windows)

#ifndef Ocv_Comp_IopropertiesHPP
#define Ocv_Comp_IopropertiesHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <System.Classes.hpp>
#include <DesignEditors.hpp>
#include <DesignIntf.hpp>
#include <ocv.comp.ImageOperation.hpp>

//-- user supplied -----------------------------------------------------------

namespace Ocv
{
namespace Comp
{
namespace Ioproperties
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TImageOperationProperty;
class DELPHICLASS TImageOperationCollectionItemProperty;
class DELPHICLASS TImageContourPrepProperty;
class DELPHICLASS TImageMotionDetectThresholdProperty;
class DELPHICLASS TocvCustomImageOperationProperty;
//-- type declarations -------------------------------------------------------
#pragma pack(push,4)
class PASCALIMPLEMENTATION TImageOperationProperty : public Designeditors::TComponentProperty
{
	typedef Designeditors::TComponentProperty inherited;
	
private:
	System::Classes::TPersistent* FInstance;
	
protected:
	virtual System::Classes::TPersistent* __fastcall GetInstance(void);
	
public:
	virtual Designintf::TPropertyAttributes __fastcall GetAttributes(void);
	virtual System::UnicodeString __fastcall GetValue(void);
	virtual void __fastcall GetProperties(Designintf::TGetPropProc Proc);
	virtual void __fastcall GetValues(System::Classes::TGetStrProc Proc);
	virtual void __fastcall SetValue(const System::UnicodeString Value)/* overload */;
	virtual void __fastcall Initialize(void);
	__property System::Classes::TPersistent* Instance = {read=GetInstance};
public:
	/* TPropertyEditor.Create */ inline __fastcall virtual TImageOperationProperty(const Designintf::_di_IDesigner ADesigner, int APropCount) : Designeditors::TComponentProperty(ADesigner, APropCount) { }
	/* TPropertyEditor.Destroy */ inline __fastcall virtual ~TImageOperationProperty(void) { }
	
	/* Hoisted overloads: */
	
public:
	inline void __fastcall  SetValue(const System::WideString Value){ Designeditors::TPropertyEditor::SetValue(Value); }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TImageOperationCollectionItemProperty : public Designeditors::TClassProperty
{
	typedef Designeditors::TClassProperty inherited;
	
public:
	virtual Designintf::TPropertyAttributes __fastcall GetAttributes(void);
	virtual System::UnicodeString __fastcall GetValue(void);
	virtual void __fastcall GetValues(System::Classes::TGetStrProc Proc);
	virtual void __fastcall SetValue(const System::UnicodeString Value)/* overload */;
public:
	/* TPropertyEditor.Create */ inline __fastcall virtual TImageOperationCollectionItemProperty(const Designintf::_di_IDesigner ADesigner, int APropCount) : Designeditors::TClassProperty(ADesigner, APropCount) { }
	/* TPropertyEditor.Destroy */ inline __fastcall virtual ~TImageOperationCollectionItemProperty(void) { }
	
	/* Hoisted overloads: */
	
public:
	inline void __fastcall  SetValue(const System::WideString Value){ Designeditors::TPropertyEditor::SetValue(Value); }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TImageContourPrepProperty : public TImageOperationCollectionItemProperty
{
	typedef TImageOperationCollectionItemProperty inherited;
	
public:
	virtual void __fastcall GetValues(System::Classes::TGetStrProc Proc);
public:
	/* TPropertyEditor.Create */ inline __fastcall virtual TImageContourPrepProperty(const Designintf::_di_IDesigner ADesigner, int APropCount) : TImageOperationCollectionItemProperty(ADesigner, APropCount) { }
	/* TPropertyEditor.Destroy */ inline __fastcall virtual ~TImageContourPrepProperty(void) { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TImageMotionDetectThresholdProperty : public TImageOperationCollectionItemProperty
{
	typedef TImageOperationCollectionItemProperty inherited;
	
public:
	virtual void __fastcall GetValues(System::Classes::TGetStrProc Proc);
public:
	/* TPropertyEditor.Create */ inline __fastcall virtual TImageMotionDetectThresholdProperty(const Designintf::_di_IDesigner ADesigner, int APropCount) : TImageOperationCollectionItemProperty(ADesigner, APropCount) { }
	/* TPropertyEditor.Destroy */ inline __fastcall virtual ~TImageMotionDetectThresholdProperty(void) { }
	
};

#pragma pack(pop)

typedef void __fastcall (__closure *TocvIOPropertyChangeEvent)(System::TObject* Sender, const System::UnicodeString PropName);

class PASCALIMPLEMENTATION TocvCustomImageOperationProperty : public Ocv::Comp::Imageoperation::TocvCustomImageOperation
{
	typedef Ocv::Comp::Imageoperation::TocvCustomImageOperation inherited;
	
private:
	int FUpdateCount;
	System::Classes::TNotifyEvent FOnChanging;
	System::Classes::TNotifyEvent FOnChanged;
	TocvIOPropertyChangeEvent FOnChangingProperty;
	TocvIOPropertyChangeEvent FOnChangedProperty;
	
protected:
	virtual void __fastcall Changed(void);
	virtual void __fastcall Changing(void);
	virtual void __fastcall ChangedProperty(const System::UnicodeString PropName);
	virtual void __fastcall ChangingProperty(const System::UnicodeString PropName);
	virtual void __fastcall SetUpdateState(bool Updating);
	__property int UpdateCount = {read=FUpdateCount, nodefault};
	
public:
	virtual void __fastcall BeginUpdate(void);
	virtual void __fastcall EndUpdate(void);
	__property System::Classes::TNotifyEvent OnChanged = {read=FOnChanged, write=FOnChanged};
	__property System::Classes::TNotifyEvent OnChanging = {read=FOnChanging, write=FOnChanging};
	__property TocvIOPropertyChangeEvent OnChangedProperty = {read=FOnChangedProperty, write=FOnChangedProperty};
	__property TocvIOPropertyChangeEvent OnChangingProperty = {read=FOnChangingProperty, write=FOnChangingProperty};
public:
	/* TocvCustomImageOperation.Create */ inline __fastcall virtual TocvCustomImageOperationProperty(System::Classes::TPersistent* AOwner) : Ocv::Comp::Imageoperation::TocvCustomImageOperation(AOwner) { }
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvCustomImageOperationProperty(void) { }
	
};


//-- var, const, procedure ---------------------------------------------------
}	/* namespace Ioproperties */
}	/* namespace Comp */
}	/* namespace Ocv */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_OCV_COMP_IOPROPERTIES)
using namespace Ocv::Comp::Ioproperties;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_OCV_COMP)
using namespace Ocv::Comp;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_OCV)
using namespace Ocv;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Ocv_Comp_IopropertiesHPP
